//---------------------------------------------------【初始化】
function SEARCH_ENGINE(dom, searchInput, searchResultInner, searchList) {

    //存储拼音+汉字+数字的数组
    this.searchMemberArray = [];

    //作用对象
    this.dom = $("." + dom);

    //搜索框
    this.searchInput = "." + searchInput;

    //搜索结果框
    this.searchResultInner = this.dom.find("." + searchResultInner);

    //搜索对象的名单列表
    this.searchList = this.dom.find("." + searchList);

    //转换成拼音并存入数组
    this.transformPinYin();

    //绑定搜索事件
    this.searchActiveEvent();

}

SEARCH_ENGINE.prototype = {
    //-----------------------------【转换成拼音，并将拼音、汉字、数字存入数组】
    transformPinYin: function () {

        //临时存放数据对象

        for (var i = 0; i < this.searchList.length; i++) {
            //存放名字，转换成拼音
            //汉字转换成拼音
            var pinyin = this.searchList.eq(i).attr("data-py").toUpperCase()
            //汉字
            var cnCharacter = this.searchList.eq(i).attr("data-name");
            //数字
            // var digital = this.searchList.eq(i).attr("data-phone");

            //存入数组
            this.searchMemberArray.push(pinyin + "&" + cnCharacter + "&");

        }

    },

    //-----------------------------【模糊搜索关键字】
    fuzzySearch: function (type, val) {
        var s;
        var returnArray = [];

        //拼音
        if (type === "pinyin") {
            s = 0;
        }
        //汉字
        else if (type === "cnCharacter") {
            s = 1;
        }
        //数字
        // else if(type === "digital"){
        //     s = 2;
        // }

        $('.member-list-inner').find('li').find('a').find('i').removeClass('abc')
        $('.member-list-inner').find('li').hide();
        for (var i = 0; i < this.searchMemberArray.length; i++) {
            if (this.searchMemberArray[i].split("&")[s].indexOf(val) >= 0) {
                //字符串起始位置
                var dyz = this.searchMemberArray[i].split("&")[s].split(','),
                    locationStart = this.searchMemberArray[i].split("&")[s].indexOf(val);
                   
                if (dyz.length > 1) {
                    locationStart = locationStart - parseInt(locationStart/(dyz[0].length+1))*dyz[0].length - parseInt(locationStart/(dyz[0].length+1))
                    
                }

                // 截取字符串 得到匹配汉字
                var exp = this.searchMemberArray[i].split("&")[1].substring(locationStart, val.length + locationStart);
                var text = $('.member-list-inner').find('li').eq(i).find('a').text().replace(eval("/" + exp + "/g"), '<i class="abc">' + exp + '</i>');
                //$('.member-list-inner').find('li').eq(i).find('a').html(text);
                $('.member-list-inner').find('li').eq(i).show();
                $('.member-list-inner').find('li').eq(i).find('a').html(text);

            }

        }

    },

    // //-----------------------------【输出搜索结果】
    // postMemberList : function(tempArray){
    //     var html = '';

    //     //有搜索结果
    //     if(tempArray.length > 0){

    //         html += '<li class="tips">搜索结果（' + tempArray.length + '）</li>';

    //         for(var i=0;i<tempArray.length;i++){
    //             var sArray = tempArray[i].split("&");

    //             html += '<li>';
    //             html += '<span class="phone">' + sArray[2] + '</span>';
    //             html += '<span class="name">' + sArray[1] + '</span>';
    //             html += '</li>';
    //         }
    //     }
    //     //无搜索结果
    //     else{

    //         if($(this.searchInput).val() != ""){
    //             html += '<li class="tips">无搜索结果……</li>';
    //         }else{
    //             this.searchResultInner.html("");
    //         }
    //     }
    //     this.searchResultInner.html(html);
    // },

    //-----------------------------【绑定搜索事件】
    searchActiveEvent: function () {
        var searchEngine = this;

        $(this.searchInput).on("keyup", function () {
            var val = $(this).val().toUpperCase();
            if (val == undefined || val == "") {
                $('.member-list-inner').find('li').show();
                $('.member-list-inner').find('li').find('a').find('i').removeClass('abc');
            }
            //判断拼音的正则
            var pinYinRule = /^[A-Za-z]+$/;
            //判断汉字的正则
            var cnCharacterRule = new RegExp("^[\\u4E00-\\u9FFF]+$", "g");

            //判断整数的正则
            // var digitalRule = /^[-\+]?\d+(\.\d+)?$/;

            //只搜索3种情况
            //拼音
            if (pinYinRule.test(val)) {
                tempArray = searchEngine.fuzzySearch("pinyin", val);
            }
            //汉字
            else if (cnCharacterRule.test(val)) {
                tempArray = searchEngine.fuzzySearch("cnCharacter", val);
            }
        });
    }
};